using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("SoundUtils")]
	public class SoundUtils : MonoClass
	{
		public SoundUtils(IntPtr address, string className)
			: base(address, className)
		{
		}

		public SoundUtils(IntPtr address)
			: this(address, "SoundUtils")
		{
		}

		public static bool IsBackgroundMusicPlaying()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "IsBackgroundMusicPlaying", Array.Empty<object>());
		}

		public static Option GetCategoryEnabledOption(SoundCategory cat)
		{
			return MonoClass.smethod_14<Option>(TritonHs.MainAssemblyPath, "", "SoundUtils", "GetCategoryEnabledOption", new object[1] { cat });
		}

		public static Option GetCategoryVolumeOption(SoundCategory cat)
		{
			return MonoClass.smethod_14<Option>(TritonHs.MainAssemblyPath, "", "SoundUtils", "GetCategoryVolumeOption", new object[1] { cat });
		}

		public static float GetOptionVolume(Option option)
		{
			return MonoClass.smethod_14<float>(TritonHs.MainAssemblyPath, "", "SoundUtils", "GetOptionVolume", new object[1] { option });
		}

		public static float GetCategoryVolume(SoundCategory cat)
		{
			return MonoClass.smethod_14<float>(TritonHs.MainAssemblyPath, "", "SoundUtils", "GetCategoryVolume", new object[1] { cat });
		}

		public static bool IsCategoryEnabled(SoundCategory cat)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "IsCategoryEnabled", new object[1] { cat });
		}

		public static bool IsFxEnabled()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "IsFxEnabled", Array.Empty<object>());
		}

		public static bool IsMusicEnabled()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "IsMusicEnabled", Array.Empty<object>());
		}

		public static bool IsVoiceEnabled()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "IsVoiceEnabled", Array.Empty<object>());
		}

		public static bool IsCategoryAudible(SoundCategory cat)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "IsCategoryAudible", new object[1] { cat });
		}

		public static bool IsFxAudible()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "IsFxAudible", Array.Empty<object>());
		}

		public static bool IsMusicAudible()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "IsMusicAudible", Array.Empty<object>());
		}

		public static bool IsVoiceAudible()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "IsVoiceAudible", Array.Empty<object>());
		}

		public static bool IsMusicCategory(SoundCategory cat)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "IsMusicCategory", new object[1] { cat });
		}

		public static bool IsVoiceCategory(SoundCategory cat)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "IsVoiceCategory", new object[1] { cat });
		}

		public static bool CanDetectVolume()
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "CanDetectVolume", Array.Empty<object>());
		}

		public static void SetVolumes(Component c, float volume, bool includeInactive)
		{
			MonoClass.smethod_19(TritonHs.MainAssemblyPath, "", "SoundUtils", "SetVolumes", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.R4,
				Class276.Enum20.Boolean
			}, c, volume, includeInactive);
		}

		public static void SetVolumes(GameObject go, float volume, bool includeInactive)
		{
			MonoClass.smethod_19(TritonHs.MainAssemblyPath, "", "SoundUtils", "SetVolumes", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.R4,
				Class276.Enum20.Boolean
			}, go, volume, includeInactive);
		}

		public static void SetSourceVolumes(Component c, float volume, bool includeInactive)
		{
			MonoClass.smethod_19(TritonHs.MainAssemblyPath, "", "SoundUtils", "SetSourceVolumes", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.R4,
				Class276.Enum20.Boolean
			}, c, volume, includeInactive);
		}

		public static void SetSourceVolumes(GameObject go, float volume, bool includeInactive)
		{
			MonoClass.smethod_19(TritonHs.MainAssemblyPath, "", "SoundUtils", "SetSourceVolumes", new Class276.Enum20[3]
			{
				Class276.Enum20.Class,
				Class276.Enum20.R4,
				Class276.Enum20.Boolean
			}, go, volume, includeInactive);
		}

		public static string GetRandomClipFromDef(SoundDef def)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "SoundUtils", "GetRandomClipFromDef", def);
		}

		public static float GetRandomVolumeFromDef(SoundDef def)
		{
			return MonoClass.smethod_14<float>(TritonHs.MainAssemblyPath, "", "SoundUtils", "GetRandomVolumeFromDef", new object[1] { def });
		}

		public static float GetRandomPitchFromDef(SoundDef def)
		{
			return MonoClass.smethod_14<float>(TritonHs.MainAssemblyPath, "", "SoundUtils", "GetRandomPitchFromDef", new object[1] { def });
		}

		public static void CopyDuckedCategoryDef(SoundDuckedCategoryDef src, SoundDuckedCategoryDef dst)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "SoundUtils", "CopyDuckedCategoryDef", src, dst);
		}

		public static void CopySoundDef(SoundDef src, SoundDef dst)
		{
			MonoClass.smethod_18(TritonHs.MainAssemblyPath, "", "SoundUtils", "CopySoundDef", src, dst);
		}

		public static bool AddAudioSourceComponents(GameObject go)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "AddAudioSourceComponents", new object[1] { go });
		}

		public static bool IsVOFilePath(string path)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "IsVOFilePath", new object[1] { path });
		}

		public static bool IsVOFileName(string name)
		{
			return MonoClass.smethod_14<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "IsVOFileName", new object[1] { name });
		}

		public static bool IsVOClip(string clip)
		{
			return MonoClass.smethod_11<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "IsVOClip", new Class276.Enum20[1] { Class276.Enum20.String }, new object[1] { clip });
		}

		public static bool IsVOClip(RandomAudioClip randomClip)
		{
			return MonoClass.smethod_11<bool>(TritonHs.MainAssemblyPath, "", "SoundUtils", "IsVOClip", new Class276.Enum20[1] { Class276.Enum20.Class }, new object[1] { randomClip });
		}
	}
}
